iT邦幫忙

DAY 17
0

Node.js 學習筆記系列 第 17

Node.js學習筆記十六:將MongoDB資料的Object拆解

  • 分享至 

  • xImage
  •  

上一篇我們在Node.js裡讀出MongoDB裡的資料並試圖將之顯示在console跟網頁上。結果我們發現,console顯示的確實是我們想要的資料,但網頁卻無法顯示。

原因其實很簡單,MongoDB是以JSON的格式儲存資料,讀出來的自然也是JSON。JSON資料包含的是Object,直接render的話,模版引擎(template engine)無法處理,只能顯示,我們所看到的一堆Objects的畫面。

所以在送交模版引擎render之前,我們要將Object拆解,這時我們只需要使用Object.keys()來達成。

將"routes/index.js"裡面的"userlist"(上一篇新增)的部分改成下面那樣:

router.get('/userlist', function(req, res) {
    var db = req.db;
    var collection = db.get('usercollection');
    collection.find({},{},function(e,docs){
      var objKey = Object.keys(docs);
      objKey.forEach(function(objectid){
        var items = Object.keys(docs[objectid]);
        items.forEach(function(itemkey) {
          var itemvalue =docs[objectid][itemkey];
          console.log(objectid+': '+itemkey+' = '+itemvalue);
        })
      })
      res.render('userlist', {
          "userlist" : doc
      });
    });
});

在瀏覽器打開"localhost:3000/userlist",console會顯示:

0: _id = 54394911c4988c56a458cdd0
0: username = zack
0: email = zack@zacklive.com
1: _id = 54394e51c4988c56a458cdd1
1: username = testuser2
1: email = testuser2@testdomain.com
2: _id = 54394e51c4988c56a458cdd2
2: username = testuser3
2: email = testuser3@testdomain.com

可以看出原本的Objects已經被拆成一個個的變數,要進一步作處理就簡單多了。

[image credit: Gopal Vijayaraghavan]

(本文同步發表於: NodeJust.com )


上一篇
Node.js學習筆記十五:使用Monk讀取MongoDB資料
下一篇
Node.js學習筆記十七:將MongoDB資料的Object拆解(二)
系列文
Node.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言